package com.MetaverseMaker.UniverseFarm.service;

/**
 * @Auther: wanghuiqian
 * @Date: 2021/12/22 - 12 - 22 - 11:15
 * @Description: service
 * @version: 1.0
 */


import com.MetaverseMaker.UniverseFarm.dto.SoilCount;
import com.MetaverseMaker.UniverseFarm.dto.SoilNum;
import com.MetaverseMaker.UniverseFarm.entity.SoilInfo;
import com.MetaverseMaker.UniverseFarm.entity.UserInfo;

import java.util.List;

/**
 * 土地管理服务层
 */
public interface ISoilInfoService {

    /**
     * 显示所有土地
     */
    List<SoilInfo> findAll() throws Exception;
    /**
     * 新增土地
     *
     * @param soilInfo
     * @return
     * @throws Exception
     */
    boolean save(SoilInfo soilInfo) throws Exception;

    /**
     * 通过id删除土地
     *
     * @param id
     * @return
     * @throws Exception
     */
    boolean deleteById(int id) throws Exception;

    /**
     * 更新土地信息
     *
     * @param soilInfo
     * @return
     * @throws Exception
     */
    boolean update(SoilInfo soilInfo) throws Exception;

    /**
     * 分页查询土地信息
     *
     * @param pageNum
     * @param pageSize
     * @return
     * @throws Exception
     */
//    List<SoilInfo> queryAllSoilInfo(int pageNum, int pageSize) throws Exception;

    /**
     * 通过id查询土地信息
     *
     * @param id
     * @return
     * @throws Exception
     */
    SoilInfo findSoilInfoById(int id) throws Exception;

    public List<SoilInfo> querysoilByTypeAndLimit(String type, Integer limit);
    public SoilCount getsoilCount();
    public List<SoilInfo> querysoilForPage(int startindex,int size);
    public SoilInfo querySoilGoodById(Integer id);
    public List<SoilNum> querysoilTypeNum();

    /**
     * 关键字分页查询土地信息
     *
     * @param pageNum
     * @param pageSize
     * @param kw
     * @return
     * @throws Exception
     */
//    List<SoilInfo> findSoilInfoByKeyWord(int pageNum, int pageSize, String kw) throws Exception;

    /**
     * 关键字查询对应类型的土地信息
     *
     * @param kw
     * @return
     * @throws Exception
     */
    //List<SoilInfo> findSoilInfoCateByKeyWord(String kw) throws Exception;

    List<SoilInfo> findSoilGoodsInfoByUserId(UserInfo userInfo);

    /**
     * @param
     */
    List<SoilInfo> findSoilInfoByUserId(UserInfo userInfo);

    /**
     * 通过类型和当前土地的信心推荐出同类食物
     *
     * @param kw
     * @param id
     * @return
     * @throws Exception
     */
//    List<SoilInfo> findRecommend(String kw, int id) throws Exception;

    /**
     * 搜索关键字和排序以及排序
     * 对土地信息进行处理
     *
     * @param pageNum
     * @param pageSize
     * @param kw
     * @param word
     * @return
     * @throws Exception
     */
//    List<SoilInfo> findSoilInfoOrderBy(int pageNum, int pageSize, String kw, String word) throws Exception;

    /**
     * 搜索关键字和排序以及排序、食物类别
     * 对土地信息进行处理
     *
     * @param pageNum
     * @param pageSize
     * @param kw
     * @param word
     * @param cate
     * @return
     * @throws Exception
     */
//    List<SoilInfo> findSoilInfoOrderBy(int pageNum, int pageSize, String kw, String word, String cate) throws Exception;

}

